﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Data;
using Volo.Abp.Domain.Entities;
using Volo.Abp.MultiTenancy;
using Volo.Abp;

namespace Himp.Platform.Dc
{
    /// <summary>
    /// 收费项目类别
    /// </summary>
    [Table("CHRGITM_TYPE")]
    public class ChrgitmType : Entity<Guid>, IMultiTenant, ISoftDelete, IHasExtraProperties
    {
        /// <summary>
        /// 收费类别编码
        /// </summary>
        [Column("CHRGITM_TYPE_CODG")]
        public string ChrgitmTypeCodg { get; set; }

        /// <summary>
        /// 收费类别名称
        /// </summary>
        [Column("CHRGITM_TYPE_NAME")]
        public string ChrgitmTypeName { get; set; }

        /// <summary>
        /// 有效标识
        /// </summary>
        [Column("VALI_FLAG")]
        public bool ValiFlag { get; set; }

        public Guid ChrgitmTypeGrpId { get; set; }

        /// <summary>
        /// 收费项目类别分组
        /// </summary>
        public ChrgitmTypeGrp? ChrgitmTypeGrp { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public bool IsDeleted { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public ExtraPropertyDictionary ExtraProperties { get; }

        /// <summary>
        /// 
        /// </summary>
        public Guid? TenantId { get; set; }

        public ChrgitmType()
        { 
            
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="ChrgitmTypeCodg"></param>
        /// <param name="ChrgitmTypeName"></param>
        public ChrgitmType(string chrgitmTypeCodg,string chrgitmTypeName
            ,Guid chrgitmTypeGrpId)
        {
            ChrgitmTypeCodg = chrgitmTypeCodg;
            ChrgitmTypeName = chrgitmTypeName;
            ChrgitmTypeGrpId = chrgitmTypeGrpId;
            ExtraProperties = new ExtraPropertyDictionary();
        }
    }
}
